<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    function add(a, b) {
        console.log(a, b);
        return a + b;
    }

    // var result = add(1, 2);
    // console.log(result);

    // var result = add(1, 2, 3);
    // console.log(result);

    // console.log(2, 8, 4, 6, 5, 9, 3, 7, 1);


</script>
<script>
    // arguments 函数的内置参数 (每个函数都有,可以直接使用)  => 用于存放当前函数在调用时,所有实际参数的集合(类似数组)

    // 目标:解决函数调用时,参数不定项的问题 (参数可以没有,可以有多个)

    // 特性
    // 1. 有length属性  表长度(实际参数的个数)
    // 2. 对应下标取值和赋值   => 下标的最大 = arguments.length - 1
    // 3. 可以被循环遍历(通过循环依次取出数组中的每一个值) 



    function add(a, b) {
        // console.log(arguments); // [2, 8, 4, 6, 5, 9, 3, 7, 1]

        // 有length属性 (点语法)
        // console.log(arguments.length, arguments["length"]);

        // 下标取值和赋值 (中括号语法   arguments["3"]  如果是数字=> arguments[3])
        // 取值
        // console.log(arguments[3]);

        // arguments[3] = 66;

        // console.log(arguments);


        // 循环遍历
        // console.log(arguments[0]);
        // console.log(arguments[1]);
        // console.log(arguments[2]);
        // console.log(arguments[3]);
        // console.log(arguments[4]);
        // console.log(arguments[5]);
        // console.log(arguments[6]);
        // console.log(arguments[7]);
        // console.log(arguments[8]);

        // for (var i = 0; i < arguments.length; i++) {
        //     console.log(i, arguments[i]);
        // }

        console.log(arguments);
        var sum = 0;
        for (var i = 0; i < arguments.length; i++) {
            var item = arguments[i];
            sum += item;
        }
        return sum;



    }

    var result = add(2, 8, 4, 6, 5, 9, 3, 7, 1);
    console.log(result);


    var result = add(25, 46, 73, 81);
    console.log(result);
</script>

</html>